package com.xiaoxi.bms.service.role;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaoxi.bms.common.exception.BMSException;
import com.xiaoxi.bms.domain.role.BMSRole;
import com.xiaoxi.bms.domain.role.dto.BMSRoleDTO;
import com.xiaoxi.bms.domain.role.vo.BMSRoleVO;
import com.xiaoxi.bms.domain.user.BMSUser;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * @author xiaoxi
 * @version 1.0
 * @date 2022/6/1 16:44
 */
public interface BMSRoleService extends IService<BMSRole> {

    /**
     * 获取所有角色
     *
     * @param bmsRoleDTO
     * @param pageable
     * @return
     */
    IPage<BMSRole> getAllRole(BMSRoleDTO bmsRoleDTO, Pageable pageable);

    /**
     * 通过 角色编号 查到角色详情
     *
     * @param roleId
     * @return
     */
    BMSRoleVO getRoleByRoleId(Long roleId) throws BMSException;

    /**
     * 更新角色
     *
     * @param bmsRoleVO
     * @return
     */
    void updateRole(BMSRoleVO bmsRoleVO) throws BMSException;

    /**
     * 创建角色
     *
     * @param bmsRoleVO
     * @return
     */
    void createRole(BMSRoleVO bmsRoleVO) throws BMSException;

    /**
     * 通过 roleName 查询一个用户
     *
     * @param roleName
     * @param roleId
     * @return
     */
    Boolean checkRoleName(String roleName, Long roleId);

    /**
     * 检查一批角色编号 是否存在
     *
     * @param roleIds
     * @return
     */
    Boolean checkRoleIdListValid(List<Long> roleIds);

}
